import com.powerfl.frm.taf.*;

import flash.display.BitmapData;

private var _paramAwayVar:TAFawayVar;

private function paramAwayVarSet():void{
	if( SELF._paramAwayVar === null ){
		SELF._paramAwayVar = poolPullAwayVar();
	}
}
final public function $pushBack():String{
	paramAwayVarSet();
	SELF._paramAwayVar.pushback = true;
	SELF._paramAwayVar._pushback = -1;
	return '@@TAFawayVar';
}
final public function $pushFront():String{
	paramAwayVarSet();
	SELF._paramAwayVar.pushfront = true;
	SELF._paramAwayVar._pushfront = -1;
	return '@@TAFawayVar';
}
final public function $posTree( $tree:String ):String{
	var temp:*;
	paramAwayVarSet();
	temp = tdata( $tree );
	SELF._paramAwayVar.x = temp.x;
	SELF._paramAwayVar._x = -1;
	SELF._paramAwayVar.y = temp.y;
	SELF._paramAwayVar._y = -1;
	SELF._paramAwayVar.z = temp.z;
	SELF._paramAwayVar._z = -1;
	return '@@TAFawayVar';
}
final public function $pos( $x:* = -2147483648, $y:* = -2147483648, $z:* = -2147483648 ):String{
	paramAwayVarSet();
	if( $x === $NONE ){
	}else if( $x is Number ){
		SELF._paramAwayVar.x = $x;
		SELF._paramAwayVar._x = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'x', $x );
	}
	if( $y === $NONE ){
	}else if( $y is Number ){
		SELF._paramAwayVar.y = $y;
		SELF._paramAwayVar._y = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'y', $y );
	}
	if( $z === $NONE ){
	}else if( $z is Number ){
		SELF._paramAwayVar.z = $z;
		SELF._paramAwayVar._z = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'z', $z );
	}
	return '@@TAFawayVar';
}
final public function $x( $x:* ):String{
	paramAwayVarSet();
	if( $x is Number ){
		SELF._paramAwayVar.x = $x;
		SELF._paramAwayVar._x = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'x', $x );
	}
	return '@@TAFawayVar';
}
final public function $y( $y:* ):String{
	paramAwayVarSet();
	if( $y is Number ){
		SELF._paramAwayVar.y = $y;
		SELF._paramAwayVar._y = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'y', $y );
	}
	return '@@TAFawayVar';
}
final public function $z( $z:* ):String{
	paramAwayVarSet();
	if( $z is Number ){
		SELF._paramAwayVar.z = $z;
		SELF._paramAwayVar._z = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'z', $z );
	}
	return '@@TAFawayVar';
}
final public function $centerMeshes( $centerMeshes:Boolean ):String{
	paramAwayVarSet();
	SELF._paramAwayVar.centerMeshes = $centerMeshes;
	SELF._paramAwayVar._centerMeshes = -1;
	return '@@TAFawayVar';
}
final public function $shading( $shading:Boolean ):String{
	paramAwayVarSet();
	SELF._paramAwayVar.shading = $shading;
	SELF._paramAwayVar._shading = -1;
	return '@@TAFawayVar';
}
final public function $visible( $visible:Boolean ):String{
	paramAwayVarSet();
	SELF._paramAwayVar.visible = $visible;
	SELF._paramAwayVar._visible = -1;
	return '@@TAFawayVar';
}
final public function $useHandCursor( $useHandCursor:Boolean = true ):String{
	paramAwayVarSet();
	SELF._paramAwayVar.useHandCursor = $useHandCursor;
	SELF._paramAwayVar._useHandCursor = -1;
	return '@@TAFawayVar';
}
final public function $sizeTree( $tree:String, $scaleW:Number, $scaleH:Number ):String{
	var data:*;
	data = tdata( $tree + '@size' );
	return $size( data[0]*$scaleW, data[1]*$scaleH );
}
final public function $width( $val:* ):String{
	paramAwayVarSet();
	if( $val is Number ){
		SELF._paramAwayVar.width = $val;
		SELF._paramAwayVar._width = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'width', $val );
	}
	return '@@TAFawayVar';
}
final public function $height( $val:* ):String{
	paramAwayVarSet();
	if( $val is Number ){
		SELF._paramAwayVar.height = $val;
		SELF._paramAwayVar._height = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'height', $val );
	}
	return '@@TAFawayVar';
}
final public function $size( $width:*, $height:* = -2147483648, $depth:* = -2147483648 ):String{
	paramAwayVarSet();
	if( $width is Number ){
		SELF._paramAwayVar.width = $width;
		SELF._paramAwayVar._width = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'width', $width );
	}
	if( $height === $NONE ){
	}else if( $height is Number ){
		SELF._paramAwayVar.height = $height;
		SELF._paramAwayVar._height = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'height', $height );
	}
	if( $depth === $NONE ){
	}else if( $depth is Number ){
		SELF._paramAwayVar.depth = $depth;
		SELF._paramAwayVar._depth = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'depth', $depth );
	}
	return '@@TAFawayVar';
}
final public function $scaling( $scaling:* ):String{
	paramAwayVarSet();
	if( $scaling is Number ){
		SELF._paramAwayVar.scaling = $scaling;
		SELF._paramAwayVar._scaling = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'scaling', $scaling );
	}
	return '@@TAFawayVar';
}
final public function $scale( $scaleX:* = -2147483648, $scaleY:* = -2147483648, $scaleZ:* = -2147483648 ):String{
	paramAwayVarSet();
	if( $scaleX === $NONE ){
	}else if( $scaleX is Number ){
		SELF._paramAwayVar.scaleX = $scaleX;
		SELF._paramAwayVar._scaleX = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'scaleX', $scaleX );
	}
	if( $scaleY === $NONE ){
	}else if( $scaleY is Number ){
		SELF._paramAwayVar.scaleY = $scaleY;
		SELF._paramAwayVar._scaleY = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'scaleY', $scaleY );
	}
	if( $scaleZ === $NONE ){
	}else if( $scaleZ is Number ){
		SELF._paramAwayVar.scaleZ = $scaleZ;
		SELF._paramAwayVar._scaleZ = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'scaleZ', $scaleZ );
	}
	return '@@TAFawayVar';
}
final public function $scaleX( $scaleX:* ):String{
	paramAwayVarSet();
	if( $scaleX is Number ){
		SELF._paramAwayVar.scaleX = $scaleX;
		SELF._paramAwayVar._scaleX = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'scaleX', $scaleX );
	}
	return '@@TAFawayVar';
}
final public function $scaleY( $scaleY:* ):String{
	paramAwayVarSet();
	if( $scaleY is Number ){
		SELF._paramAwayVar.scaleY = $scaleY;
		SELF._paramAwayVar._scaleY = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'scaleY', $scaleY );
	}
	return '@@TAFawayVar';
}
final public function $scaleZ( $scaleZ:* ):String{
	paramAwayVarSet();
	if( $scaleZ is Number ){
		SELF._paramAwayVar.scaleZ = $scaleZ;
		SELF._paramAwayVar._scaleZ = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'scaleZ', $scaleZ );
	}
	return '@@TAFawayVar';
}
final public function $rotate( $rotation:* = -2147483648 ):String{
	paramAwayVarSet();
	if( $rotation is Number ){
		SELF._paramAwayVar.rotation = $rotation;
		SELF._paramAwayVar._rotation = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'rotation', $rotation );
	}
	return '@@TAFawayVar';
}
final public function $rotation( $rotationX:* = -2147483648, $rotationY:* = -2147483648, $rotationZ:* = -2147483648 ):String{
	paramAwayVarSet();
	if( $rotationX === $NONE ){
	}else if( $rotationX is Number ){
		SELF._paramAwayVar.rotationX = $rotationX;
		SELF._paramAwayVar._rotationX = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'rotationX', $rotationX );
	}
	if( $rotationY === $NONE ){
	}else if( $rotationY is Number ){
		SELF._paramAwayVar.rotationY = $rotationY;
		SELF._paramAwayVar._rotationY = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'rotationY', $rotationY );
	}
	if( $rotationZ === $NONE ){
	}else if( $rotationZ is Number ){
		SELF._paramAwayVar.rotationZ = $rotationZ;
		SELF._paramAwayVar._rotationZ = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'rotationZ', $rotationZ );
	}
	return '@@TAFawayVar';
}
final public function $rotationX( $rotationX:* ):String{
	paramAwayVarSet();
	if( $rotationX is Number ){
		SELF._paramAwayVar.rotationX = $rotationX;
		SELF._paramAwayVar._rotationX = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'rotationX', $rotationX );
	}
	return '@@TAFawayVar';
}
final public function $rotationY( $rotationY:* ):String{
	paramAwayVarSet();
	if( $rotationY is Number ){
		SELF._paramAwayVar.rotationY = $rotationY;
		SELF._paramAwayVar._rotationY = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'rotationY', $rotationY );
	}
	return '@@TAFawayVar';
}
final public function $rotationZ( $rotationZ:* ):String{
	paramAwayVarSet();
	if( $rotationZ is Number ){
		SELF._paramAwayVar.rotationZ = $rotationZ;
		SELF._paramAwayVar._rotationZ = -1;
	}else{
		SELF._paramAwayVar.delayAdd( 'rotationZ', $rotationZ );
	}
	return '@@TAFawayVar';
}
final public function $alpha( $alpha:*, $ownCanvas:Boolean = true ):String{
	paramAwayVarSet();
	if( $alpha is Number ){
		SELF._paramAwayVar.alpha = $alpha;
		SELF._paramAwayVar._alpha = -1;
		if( $ownCanvas ){
			SELF._paramAwayVar.ownCanvas = true;
			SELF._paramAwayVar._ownCanvas = -1;
		}
	}else{
		if( $ownCanvas ){
			SELF._paramAwayVar.ownCanvas = true;
			SELF._paramAwayVar._ownCanvas = -1;
		}
		SELF._paramAwayVar.delayAdd( 'alpha', $alpha );
	}
	return '@@TAFawayVar';
}
final public function $segments( $width:int, $height:int ):String{
	paramAwayVarSet();
	SELF._paramAwayVar.segmentsW = $width;
	SELF._paramAwayVar._segmentsW = -1;
	SELF._paramAwayVar.segmentsH = $height;
	SELF._paramAwayVar._segmentsH = -1;
	return '@@TAFawayVar';
}

final public function $matLibrary( $key:String, $mat:String ):String{
	var i:int, j:int;
	paramAwayVarSet();
	if( SELF._paramAwayVar._material < 0 ){
		SELF._paramAwayVar._materialLibrary = -1;
		SELF._paramAwayVar.materialLibrary[$key] = SELF._paramAwayVar.material.concat();
		SELF._paramAwayVar._material = 0;
		SELF._paramAwayVar.material.length = 0;
	}else{
		error( '$mat 인자에는 $mat시리즈의 인자함수가 와야합니다.' );
	}
	return '@@TAFawayVar';
}
private var bitmapResource:Object = {};
private function bitmapResourceCheck( $key:String, $bitmap:BitmapData ):BitmapData{
	if( $key ){
		if( SELF.bitmapResource[$key] ){
			SELF.bitmapResource[$key].dispose();
		}
		SELF.bitmapResource[$key] = $bitmap;
	}
	return $bitmap;
}
private function bitmapText( $text:String, $tileKey:String, $data:*, $resourceKey:String ):BitmapData{
	var text:Array, bitmap:BitmapData, width:int, height:int, i:int, j:int, k:int, l:int, m:int;
	if( $data is String ){
		$data = tdata( $data );
	}
	text = $text.split( '<br>' );
	k = 0;
	for( i = 0, j = text.length ; i < j ; ++i ){
		if( text[i].length > k ){
			k = text[i].length;
		}
	}
	bitmap = tdata( $tileKey + '0' );
	width = bitmap.width;
	height = bitmap.height;
	bitmap = bitmapData( width*k, height*j );
	for( i = 0, j = text.length ; i < j ; ++i ){
		for( k = 0, l = text[i].length ; k < l ; ++k ){
			if( text[i].charAt( k ) ){
				m = $data.indexOf( text[i].charAt( k ) );  
				if( m === -1 ){
					error( '해당 문자는 map에 정의되어있지 않은 문자입니다. - ' + text[i].charAt( k ) + ":" + $data );
				}else{
					bitmap = bitmapCopy( bitmap, tdata( $tileKey + m.toString() ), width*k, height*i, false );
				}
			}
		}
	}
	return bitmapResourceCheck( $resourceKey, bitmap );
}
final public function $matTemplate( $templete:String, ...$variables ):String{
	return $matBitmapData( $textGet( $textHtml( template_( $templete, $variables ) ) ) );
}
final public function $backTemplate( $templete:String, ...$variables ):String{
	return $backBitmapData( $textGet( $textHtml( template_( $templete, $variables ) ) ) );
}	
final public function $matBitmapText( $text:String, $tileKey:String, $data:*, $resourceKey:String = '' ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._material = -1;
	SELF._paramAwayVar.material[0] = 'bitmap';
	SELF._paramAwayVar.material[1] = bitmapText( $text, $tileKey, $data, $resourceKey );
	return '@@TAFawayVar';
}
final public function $backBitmapText( $text:String, $tileKey:String, $data:*, $resourceKey:String = '' ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._bothsides = -1;
	SELF._paramAwayVar.bothsides = true;
	SELF._paramAwayVar._back = -1;
	SELF._paramAwayVar.back[0] = 'bitmap';
	SELF._paramAwayVar.back[1] = bitmapText( $text, $tileKey, $data, $resourceKey );
	return '@@TAFawayVar';
}
final public function $matBitmapData( $bitmap:BitmapData, $resourceKey:String = '' ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._material = -1;
	SELF._paramAwayVar.material[0] = 'bitmap';
	SELF._paramAwayVar.material[1] = bitmapResourceCheck( $resourceKey, $bitmap );
	return '@@TAFawayVar';
}
final public function $backBitmapData( $bitmap:BitmapData, $resourceKey:String = '' ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._bothsides = -1;
	SELF._paramAwayVar.bothsides = true;
	SELF._paramAwayVar._back = -1;
	SELF._paramAwayVar.back[0] = 'bitmap';
	SELF._paramAwayVar.back[1] = bitmapResourceCheck( $resourceKey, $bitmap );
	return '@@TAFawayVar';
}
final public function $matBitmap( $key:String ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._material = -1;
	SELF._paramAwayVar.material[0] = 'bitmap';
	SELF._paramAwayVar.material[1] = $key;
	return '@@TAFawayVar';
}
final public function $backBitmap( $key:String ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._bothsides = -1;
	SELF._paramAwayVar.bothsides = true;
	SELF._paramAwayVar._back = -1;
	SELF._paramAwayVar.back[0] = 'bitmap';
	SELF._paramAwayVar.back[1] = $key;
	return '@@TAFawayVar';
}
final public function $matColor( $color:uint ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._material = -1;
	SELF._paramAwayVar.material[0] = 'color';
	SELF._paramAwayVar.material[1] = $color;
	return '@@TAFawayVar';
}
final public function $backColor( $color:uint ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._bothsides = -1;
	SELF._paramAwayVar.bothsides = true;
	SELF._paramAwayVar._back = -1;
	SELF._paramAwayVar.back[0] = 'color';
	SELF._paramAwayVar.back[1] = $color;
	return '@@TAFawayVar';
}
final public function $matWire( $color:uint, $thickness:Number ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._material = -1;
	SELF._paramAwayVar.material[0] = 'wire';
	SELF._paramAwayVar.material[1] = $color;
	SELF._paramAwayVar.material[2] = $thickness;
	return '@@TAFawayVar';
}
final public function $backWire( $color:uint, $thickness:Number ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._bothsides = -1;
	SELF._paramAwayVar.bothsides = true;
	SELF._paramAwayVar._back = -1;
	SELF._paramAwayVar.back[0] = 'wire';
	SELF._paramAwayVar.back[1] = $color;
	SELF._paramAwayVar.back[2] = $thickness;
	return '@@TAFawayVar';
}
final public function $matFlv( $flv:String, $loop:Boolean ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._material = -1;
	SELF._paramAwayVar.material[0] = 'flv';
	SELF._paramAwayVar.material[1] = $flv;
	SELF._paramAwayVar.material[2] = $loop;
	return '@@TAFawayVar';
}
final public function $backFlv( $flv:String, $loop:Boolean ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._bothsides = -1;
	SELF._paramAwayVar.bothsides = true;
	SELF._paramAwayVar._back = -1;
	SELF._paramAwayVar.back[0] = 'flv';
	SELF._paramAwayVar.back[1] = $flv;
	SELF._paramAwayVar.back[2] = $loop;
	return '@@TAFawayVar';
}
final public function $matText( ...$textParam ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._material = -1;
	SELF._paramAwayVar.material[0] = 'bitmap';
	SELF._paramAwayVar.material[1] = $textApply();
	SELF._paramTextField = null
	return '@@TAFawayVar';
}
final public function $backText( ...$textParam ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._bothsides = -1;
	SELF._paramAwayVar.bothsides = true;
	SELF._paramAwayVar._back = -1;
	SELF._paramAwayVar.back[0] = 'bitmap';
	SELF._paramAwayVar.back[1] = $textApply();
	SELF._paramTextField = null
	return '@@TAFawayVar';
}
final public function $matNormal( $bitmapKey:*, $mapKey:*, $shininess:Number = 20, $specular:uint = 0xFFFFFF ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._material = -1;
	SELF._paramAwayVar.material[0] = 'normal';
	SELF._paramAwayVar.material[1] = $bitmapKey;
	SELF._paramAwayVar.material[2] = $mapKey;
	SELF._paramAwayVar.material[3] = $shininess;
	SELF._paramAwayVar.material[4] = $specular;
	return '@@TAFawayVar';
}
final public function $backNormal( $bitmapKey:*, $mapKey:*, $shininess:Number = 20, $specular:uint = 0xFFFFFF ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._bothsides = -1;
	SELF._paramAwayVar.bothsides = true;
	SELF._paramAwayVar._back = -1;
	SELF._paramAwayVar.back[0] = 'normal';
	SELF._paramAwayVar.back[1] = $bitmapKey;
	SELF._paramAwayVar.back[2] = $mapKey;
	SELF._paramAwayVar.back[3] = $shininess;
	SELF._paramAwayVar.back[4] = $specular;
	return '@@TAFawayVar';
}
final public function $matPhong( $bitmapKey:*, $shininess:Number = 20, $specular:uint = 0xFFFFFF ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._material = -1;
	SELF._paramAwayVar.material[0] = 'phong';
	SELF._paramAwayVar.material[1] = $bitmapKey;
	SELF._paramAwayVar.material[2] = $shininess;
	SELF._paramAwayVar.material[3] = $specular;
	return '@@TAFawayVar';
}
final public function $backPhong( $bitmapKey:*, $shininess:Number = 20, $specular:uint = 0xFFFFFF ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._bothsides = -1;
	SELF._paramAwayVar.bothsides = true;
	SELF._paramAwayVar._back = -1;
	SELF._paramAwayVar.back[0] = 'phong';
	SELF._paramAwayVar.back[1] = $bitmapKey;
	SELF._paramAwayVar.back[2] = $shininess;
	SELF._paramAwayVar.back[3] = $specular;
	return '@@TAFawayVar';
}
//final public function $light( $ambient:Number = .3, $diffuse:Number = .7, $specular:uint = 1, $x:* = -2147483648, $y:* = -2147483648, $z:* = -2147483648 ):Object{
//	var result:Object;
//	result = {ambient:$ambient, diffuse:$diffuse, specular:$specular};
//	if( $x === $NONE ){}else{
//		result.x = $x;
//	}
//	if( $y === $NONE ){}else{
//		result.y = $y;
//	}
//	if( $z === $NONE ){}else{
//		result.z = $z;
//	}
//	return result;
//}
//final public function $matShadingColor( $color:uint, $ambient:Number, $diffuse:Number, $specular:Number, $shininess:Number ):Object{
//	var result:Object;
//	result = {material:{color:$color, ambient:$ambient, diffuse:$diffuse, specular:$specular, shininess:$shininess}};
//	return result;
//}
//final public function $matPhongBitmap( $key:String, $specular:uint=0xFFFFFF, $shininess:Number=20 ):Object{
//	var result:Object;
//	result = {material:{bitmap:$key, specular:$specular, shininess:$shininess}};
//	return result;
//}
//final public function $matNormal( $key:String, $normal:String, $specular:Number ):Object{
//	var result:Object;
//	result = {material:[$key, $normal, $specular]};
//	return result;
//}
//-----------------------------------------------------------------------------------------------------------------------------------------
final public function $blurRemove():String{
	paramAwayVarSet();
	SELF._paramAwayVar._blurRemove = -1;
	return '@@TAFawayVar';
}
final public function $glowRemove():String{
	paramAwayVarSet();
	SELF._paramAwayVar._glowRemove = -1;
	return '@@TAFawayVar';
}
final public function $dropRemove():String{
	paramAwayVarSet();
	SELF._paramAwayVar._dropRemove = -1;
	return '@@TAFawayVar';
}
final public function $drop( $color:uint = 0x000000, $distance:Number = 4, $angle:Number = 45, $alpha:Number = 1, $blurX:Number = 4, $blurY:Number = 4, $quality:int = 1 ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._drop = -1;
	SELF._paramAwayVar.dropC = $color;
	SELF._paramAwayVar.dropD = $distance;
	SELF._paramAwayVar.dropAN = $angle;
	SELF._paramAwayVar.dropA = $alpha;
	SELF._paramAwayVar.dropX = $blurX;
	SELF._paramAwayVar.dropY = $blurY;
	SELF._paramAwayVar.dropQ = $quality;
	SELF._paramAwayVar.ownCanvas = true;
	SELF._paramAwayVar._ownCanvas = -1;
	return '@@TAFawayVar';
}
final public function $blur( $blurX:Number, $blurY:Number, $quality:int = 1 ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._blur = -1;
	SELF._paramAwayVar.blurX = $blurX;
	SELF._paramAwayVar.blurY = $blurY;
	SELF._paramAwayVar.blurQ = $quality;
	SELF._paramAwayVar.ownCanvas = true;
	SELF._paramAwayVar._ownCanvas = -1;
	return '@@TAFawayVar';
}
final public function $glow( $color:uint, $blurX:Number, $blurY:Number, $alpha:Number = 1, $strength:Number = 2, $quality:int = 1 ):String{
	paramAwayVarSet();
	SELF._paramAwayVar._glow = -1;
	SELF._paramAwayVar.glowX = $blurX;
	SELF._paramAwayVar.glowY = $blurY;
	SELF._paramAwayVar.glowQ = $quality;
	SELF._paramAwayVar.glowS = $strength;
	SELF._paramAwayVar.glowA = $alpha;
	SELF._paramAwayVar.glowC = $color;
	SELF._paramAwayVar.ownCanvas = true;
	SELF._paramAwayVar._ownCanvas = -1;
	return '@@TAFawayVar';
}